这个头文件提供 字符串操作 的相关功能。例如字符串拼接,字符串裁剪,字符串搜索等。
安全函数 | 标准 | 说明 |
---|
strcpy_s | C11 | 复制字符串 |
strncpy_s | C11 | 复制字符串,不超过指定长度 |
strcat_s | C11 | 拼接字符串 |
strncat_s | C11 | 拼接字符串,不超过指定长度 |
strtok_s | C11 | 将字符串按照指定字串分割,返回下一个 token |
memset_s | C11 | 用指定的值填满内存块 |
memcpy_s | C11 | 复制内存块,不可重叠 |
memmove_s | C11 | 移动内存块,可以重叠 |
strerror_s | C11 | 获取错误码的文本说明 |
strerrorlen_s | C11 | 获取错误码的文本说明的长度 |
其它函数 | 标准 | 说明 |
---|
memset_explicit | C23 | 用指定的值填满内存块,不会因编译器优化而被省略 |
#include <stdio.h>
#include <string.h>
int main(void) {
char str1[] = "Hello, World!";
printf("1. strlen(\"%s\") = %lu\n", str1, strlen(str1));
char dest[50];
strcpy(dest, str1);
printf("2. strcpy: %s\n", dest);
char dest2[10];
strncpy(dest2, str1, sizeof(dest2)-1);
dest2[sizeof(dest2)-1] = '\0';
printf("3. strncpy: %s\n", dest2);
char str2[50] = "Welcome ";
strcat(str2, "to C programming!");
printf("4. strcat: %s\n", str2);
char str3[20] = "Hello";
strncat(str3, " World!!!", 6);
printf("5. strncat: %s\n", str3);
char str4[] = "apple";
char str5[] = "banana";
int result = strcmp(str4, str5);
printf("6. strcmp(\"%s\", \"%s\") = %d\n", str4, str5, result);
result = strncmp("abc123", "abc456", 3);
printf("7. strncmp(\"abc123\", \"abc456\", 3) = %d\n", result);
char *ptr = strchr(str1, 'W');
printf("8. strchr(\"%s\", 'W') found at position: %ld\n", str1, ptr - str1);
ptr = strstr("This is a test", "is");
printf("9. strstr(\"This is a test\", \"is\") found at position: %ld\n", ptr - "This is a test");
char buffer[10];
memset(buffer, 'A', sizeof(buffer)-1);
buffer[sizeof(buffer)-1] = '\0';
printf("10. memset: %s\n", buffer);
char src[] = "Memory copy";
char dest3[20];
memcpy(dest3, src, strlen(src)+1);
printf("11. memcpy: %s\n", dest3);
int arr1[] = {1, 2, 3};
int arr2[] = {1, 2, 4};
result = memcmp(arr1, arr2, sizeof(arr1));
printf("12. memcmp(arr1, arr2) = %d\n", result);
return 0;
}
运行结果:
1. strlen("Hello, World!") = 13
2. strcpy: Hello, World!
3. strncpy: Hello, Wo
4. strcat: Welcome to C programming!
5. strncat: Hello World
6. strcmp("apple", "banana") = -1
7. strncmp("abc123", "abc456", 3) = 0
8. strchr("Hello, World!", 'W') found at position: 7
9. strstr("This is a test", "is") found at position: 2
10. memset: AAAAAAAAA
11. memcpy: Memory copy
12. memcmp(arr1, arr2) = -1